/*快慢指针
* 具体思路参照leetcode
* */

public class Solution2 {
    public boolean hasCycle(ListNode head) {
        ListNode fast = head;
        ListNode slow = head;
        while (fast != null/*这里有个易错点：
        遇到数组指针后移或者是其他指针后移一定要留心一下是不是会越界*/ && fast.next != null) {
            fast = fast.next.next;
            slow = slow.next;
            if (fast == slow) {
                return true;
            }
        }
        return false;
    }
}

// 希望你开心点，一起加油！
/*
     _--_  _--_
    -    \/    -
     -        -
       -    -
         -

        _
       \   \
         \    \
         |     |
        /    /
       ... `

*/